﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Banesco.Logica;
using ProntoCompra.Logica;
using Banesco.Entidades;


namespace WebCliente.UserControls
{
    public partial class ucDirection : System.Web.UI.UserControl
    {
        BSBanesco objBS = new BSBanesco();
        BanescoBase PaginaBase = new BanescoBase();


        #region Propiedades


        public bool propertyDireccion
        {
            get { return trDireccion.Visible; }
            set { trDireccion.Visible = value; }
        }

        public bool propertyCiudad
        {
            get { return trCiudad.Visible; }
            set { trCiudad.Visible = value; }
        }

        public bool propertyPais
        {
            get { return trPais.Visible; }
            set { trPais.Visible = value; }
        }

        public bool propertyProvincia
        {
            get { return trProvincia.Visible; }
            set { trProvincia.Visible = value; }
        }

        public bool propertyDistrito
        {
            get { return trDistrito.Visible; }
            set { trDistrito.Visible = value; }
        }

        public bool propertyCorregimiento
        {
            get { return trCorregimiento.Visible; }
            set { trCorregimiento.Visible = value; }
        }


        public bool propertyProvinciaTxt
        {
            get { return trProvinciaTxt.Visible; }
            set { trProvinciaTxt.Visible = value; }
        }

        public bool propertyDistritoTxt
        {
            get { return trDistritoTxt.Visible; }
            set { trDistritoTxt.Visible = value; }
        }

        public bool propertyCorregimientoTxt
        {
            get { return trCorregimientoTxt.Visible; }
            set { trCorregimientoTxt.Visible = value; }
        }


        public bool propertyBarrio
        {
            get { return trBarrio.Visible; }
            set { trBarrio.Visible = value; }
        }

        public bool propertyCalle
        {
            get { return trCalle.Visible; }
            set { trCalle.Visible = value; }
        }

        public bool propertyResidencia
        {
            get { return trResidencia.Visible; }
            set { trResidencia.Visible = value; }
        }

        public bool propertyUbicacionFacilResidencia
        {
            get { return trUbicacionFacilResidencia.Visible; }
            set { trUbicacionFacilResidencia.Visible = value; }
        }

        public bool propertyCodigoPostal
        {
            get { return trCodigoPostal.Visible; }
            set { trCodigoPostal.Visible = value; }
        }

        public bool propertyApartadoPostal
        {
            get { return trApartadoPostal.Visible; }
            set { trApartadoPostal.Visible = value; }
        }

        public bool propertyEmail
        {
            get { return trEmail.Visible; }
            set { trEmail.Visible = value; }
        }

        public String Direccion
        {
            get { return txtDireccion.Text; }
            set { txtDireccion.Text = value; }
        }
        public String Ciudad
        {
            get { return txtCiudad.Text; }
            set { txtCiudad.Text = value; }
        }

        public String Pais
        {
            get { return ddlPais.SelectedValue.Trim(); }
            set { ddlPais.SelectedValue = value; }
        }

        public String Provincia
        {
            get { return ddlProvincia.SelectedValue; }
            set { ddlProvincia.SelectedValue = value; }
        }

        public String Distrito
        {
            get { return ddlDistrito.SelectedValue; }
            set { ddlDistrito.SelectedValue = value; }
        }

        public String Corregimiento
        {
            get { return ddlCorregimiento.SelectedValue; }
            set { ddlCorregimiento.SelectedValue = value; }
        }


        public String ProvinciaTxt
        {
            get { return txtProvincia.Text; }
            set { txtProvincia.Text = value; }
        }

        public String DistritoTxt
        {
            get { return txtDistrito.Text; }
            set { txtDistrito.Text = value; }
        }

        public String CorregimientoTxt
        {
            get { return txtCorregimiento.Text; }
            set { txtCorregimiento.Text = value; }
        }



        public String Barrio
        {
            get { return txtBarrio.Text; }
            set { txtBarrio.Text = value; }
        }

        public String Calle
        {
            get { return txtCalle.Text; }
            set { txtCalle.Text = value; }
        }

        public String Residencia
        {
            get { return txtResidencia.Text; }
            set { txtResidencia.Text = value; }
        }

        public String NoCasa
        {
            get { return txtNoCasa.Text; }
            set { txtNoCasa.Text = value; }
        }

        public String UbicacionFacilResidencia
        {
            get { return txtUbicacionFacilResidencia.Text; }
            set { txtUbicacionFacilResidencia.Text = value; }
        }

        public String ApartadoPostal
        {
            get { return txtApartadoPostal.Text; }
            set { txtApartadoPostal.Text = value; }
        }

        public String Email
        {
            get { return txtEmail.Text; }
            set { txtEmail.Text = value; }
        }

        public Boolean HabilitarPais
        {
            set
            {
                if (value)
                {
                    object sender = new object();
                    EventArgs e = new EventArgs();
                    ddlPais_SelectedIndexChanged(sender, e);
                }
            }
        }

        public Boolean HabilitarProvincias
        {
            set
            {
                if (value)
                {
                    object sender = new object();
                    EventArgs e = new EventArgs();
                    ddlProvincia_SelectedIndexChanged(sender, e);
                }
            }
        }

        public Boolean HabilitarDistritos
        {
            set
            {
                if (value)
                {
                    object sender = new object();
                    EventArgs e = new EventArgs();
                    ddlDistrito_SelectedIndexChanged(sender, e);
                }
            }
        }

        public String LabelPais
        {
            set
            {
                lblPais.Text = value;
            }
        }

        public string LabelEmail
        {
            set { lblEmail.Text = value; }
        }

        #endregion

        public Boolean HabilitarTodosValidators
        {
            set { HabilitarTodosValidatorsDireccion(value); }
        }

        protected void HabilitarTodosValidatorsDireccion(Boolean valor)
        {
            RequiredFieldValidator1.Visible = valor;
            RequiredFieldValidator2.Visible = valor;
            RequiredFieldValidator3.Visible = valor;
            RequiredFieldValidator4.Visible = valor;
            RequiredFieldValidator5.Visible = valor;
            RequiredFieldValidator6.Visible = valor;
            RequiredFieldValidator7.Visible = valor;
            RequiredFieldValidator8.Visible = valor;
            RequiredFieldValidator9.Visible = valor;
            RequiredFieldValidator10.Visible = valor;
            RequiredFieldValidator11.Visible = valor;
            RequiredFieldValidator12.Visible = valor;
            regvEmail.Visible = valor;


            RequiredFieldValidator1.Enabled = valor;
            RequiredFieldValidator2.Enabled = valor;
            RequiredFieldValidator3.Enabled = valor;
            RequiredFieldValidator4.Enabled = valor;
            RequiredFieldValidator5.Enabled = valor;
            RequiredFieldValidator6.Enabled = valor;
            RequiredFieldValidator7.Enabled = valor;
            RequiredFieldValidator8.Enabled = valor;
            RequiredFieldValidator9.Enabled = valor;
            RequiredFieldValidator10.Enabled = valor;
            RequiredFieldValidator11.Enabled = valor;
            RequiredFieldValidator12.Enabled = valor;
            regvEmail.Enabled = valor;

        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CargarPaises();
                ddlDistrito.Enabled = true;
                ddlCorregimiento.Enabled = true;
            }
        }


        protected void CargarPaises()
        {
            DataSet dsDatos = new DataSet();

            objBS.ObtenerPaises(ref dsDatos);
            PaginaBase.CargarDropDown(ddlPais, dsDatos.Tables[0], "pa_descripcion", "pa_codigo", false, "- Seleccione País -");

            //ddlPais.DataSource = dsDatos;
            //ddlPais.DataTextField = "Pais";
            //ddlPais.DataValueField = "IdPais";
            //ddlPais.DataBind();
            //ddlPais.Items.Insert(0, new ListItem("Seleccione pais", "%"));
        }

        protected void CargarProvincias()
        {
            DataSet dsDatos = new DataSet();

            objBS.ObtenerProvincias(ref dsDatos);
            PaginaBase.CargarDropDown(ddlProvincia, dsDatos.Tables[0], "pro_descripcion", "pro_codigo", false, "- Seleccione Provincia -");

        }

        protected void CargarDistritos(String idProvincia)
        {
            DataSet dsDatos = new DataSet();

            objBS.ObtenerDistritos(ref dsDatos, idProvincia);
            PaginaBase.CargarDropDown(ddlDistrito, dsDatos.Tables[0], "dis_descripcion", "dis_codigo", false, "- Seleccione Distrito -");


        }

        protected void CargarCorregimientos(String idDistrito)
        {
            DataSet dsDatos = new DataSet();

            objBS.ObtenerCorregimientos(ref dsDatos, idDistrito);
            PaginaBase.CargarDropDown(ddlCorregimiento, dsDatos.Tables[0], "cor_descripcion", "cor_codigo", false, "- Seleccione Corregimiento -");

        }

        protected void ddlPais_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlPais.SelectedValue.Trim() == Constantes.VENEZUELA)
            {
                Session[Constantes.SESIONSUCURSAL] = "572";

                lblProvincia.Text = Constantes.ESTADO;
                lblDistrito.Text = Constantes.MUNICIPIO;
                lblCorregimiento.Text = Constantes.CIUDAD;

                lblProvinciaTxt.Text = Constantes.ESTADO;
                lblDistritoTxt.Text = Constantes.MUNICIPIO;
                lblCorregimientoTxt.Text = Constantes.CIUDAD;

                lblBarrio.Text = Constantes.PARROQUIA;

                trProvincia.Visible = false;
                trProvinciaTxt.Visible = true;
                trDistrito.Visible = false;
                trDistritoTxt.Visible = true;
                trCorregimiento.Visible = false;
                trCorregimientoTxt.Visible = true;
                trBarrio.Visible = true;
                trDireccion.Visible = false;
                trCiudad.Visible = false;

                trCalle.Visible = true;
                trResidencia.Visible = true;
                trUbicacionFacilResidencia.Visible = true;
                trNoCasa.Visible = true;

                ddlProvincia.DataSource = null;
                ddlProvincia.DataBind();

                ddlDistrito.DataSource = null;
                ddlDistrito.DataBind();

                ddlCorregimiento.DataSource = null;
                ddlCorregimiento.DataBind();

            }
            else if (ddlPais.SelectedValue.Trim() == Constantes.PANAMA)
            {
                trBarrio.Visible = false;

                ddlCorregimiento.Enabled = false;
                ddlDistrito.Enabled = false;

                trProvincia.Visible = true;
                trProvinciaTxt.Visible = false;
                trDistrito.Visible = true;
                trDistritoTxt.Visible = false;
                trCorregimiento.Visible = true;
                trCorregimientoTxt.Visible = false;
                trDireccion.Visible = false;
                trCiudad.Visible = false;

                trCalle.Visible = true;
                trResidencia.Visible = true;
                trUbicacionFacilResidencia.Visible = true;
                trNoCasa.Visible = true;

                lblProvincia.Text = Constantes.PROVINCIA;
                lblDistrito.Text = Constantes.DISTRITO;
                lblCorregimiento.Text = Constantes.CORREGIMIENTO;

                lblProvinciaTxt.Text = Constantes.PROVINCIA;
                lblDistritoTxt.Text = Constantes.DISTRITO;
                lblCorregimientoTxt.Text = Constantes.CORREGIMIENTO;

                CargarProvincias();
            }
            else
            {
                trBarrio.Visible = false;
                trProvincia.Visible = false;
                trProvinciaTxt.Visible = false;
                trDistrito.Visible = false;
                trDistritoTxt.Visible = false;
                trCorregimiento.Visible = false;
                trCorregimientoTxt.Visible = false;
                trDireccion.Visible = true;
                trCiudad.Visible = true;
                trCalle.Visible = false;
                trResidencia.Visible = false;
                trUbicacionFacilResidencia.Visible = false;
                trNoCasa.Visible = false;


                lblProvincia.Text = Constantes.PROVINCIA;
                lblDistrito.Text = Constantes.DISTRITO;
                lblCorregimiento.Text = Constantes.CORREGIMIENTO;

                lblProvinciaTxt.Text = Constantes.PROVINCIA;
                lblDistritoTxt.Text = Constantes.DISTRITO;
                lblCorregimientoTxt.Text = Constantes.CORREGIMIENTO;

                lblBarrio.Text = Constantes.BARRIO;

                ddlProvincia.DataSource = null;
                ddlProvincia.DataBind();

                ddlDistrito.DataSource = null;
                ddlDistrito.DataBind();
                ddlDistrito.SelectedIndex = ddlDistrito.Items.Count - 1;

                ddlCorregimiento.DataSource = null;
                ddlCorregimiento.DataBind();
                ddlCorregimiento.SelectedIndex = ddlCorregimiento.Items.Count - 1;
            }
        }

        protected void ddlProvincia_SelectedIndexChanged(object sender, EventArgs e)
        {
            ddlDistrito.DataSource = null;
            ddlDistrito.DataBind();

            ddlCorregimiento.DataSource = null;
            ddlCorregimiento.DataBind();

            CargarDistritos(ddlProvincia.SelectedValue);
            ddlDistrito.Enabled = true;
            ddlCorregimiento.Enabled = false;
            ddlCorregimiento.SelectedIndex = ddlCorregimiento.Items.Count - 1;
        }

        protected void ddlDistrito_SelectedIndexChanged(object sender, EventArgs e)
        {
            CargarCorregimientos(ddlDistrito.SelectedValue);
            ddlCorregimiento.Enabled = true;
        }


    }






}